home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / include / gema.h < prev    next >
C/C++ Source or Header  |  1993-10-20  |  2KB  |  74 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  GEMactivity
  4. //
  5. //  A GEMactivity is an interaction with the user through the GEM interface.
  6. //
  7. //  This file is Copyright 1992,1993 by Warwick W. Allison.
  8. //  This file is part of the gem++ library.
  9. //  You are free to copy and modify these sources, provided you acknowledge
  10. //  the origin by retaining this notice, and adhere to the conditions
  11. //  described in the file COPYING.LIB.
  12. //
  13. /////////////////////////////////////////////////////////////////////////////
  14.  
  15. #ifndef GEMa_h
  16. #define GEMa_h
  17.  
  18. #include <gemfb.h>
  19.  
  20. class GEMmenu;
  21. class GEMdeskaccessory;
  22. class GEMwindow;
  23. class GEMtimer;
  24. class GEMkeysink;
  25. class GEMevent;
  26.  
  27. class GEMactivity
  28. {
  29. public:
  30.     GEMactivity();
  31.  
  32.     virtual ~GEMactivity();
  33.  
  34.     // Standard main-loop...
  35.     void Do();
  36.  
  37.     // Components, so you may build your own...
  38.     void BeginDo();
  39.     GEMfeedback OneDo();
  40.     GEMfeedback OneDo(int eventmask);
  41.     void EndDo();
  42.  
  43.     // These are for call by GEM* classes
  44.     void AddWindow(GEMwindow&);
  45.     void RemoveWindow(GEMwindow&);
  46.     void SetMenu(GEMmenu*);
  47.     void SetTimer(GEMtimer*);
  48.     void SetKeySink(GEMkeysink*);
  49.     void SetDeskAccessory(GEMdeskaccessory*);
  50.     void Topped(const GEMwindow&);
  51.     void Bottomed(const GEMwindow&);
  52.  
  53.     // Debug.
  54.     void Dump();
  55.  
  56. private:
  57.     GEMfeedback PerformMessage(const GEMevent&);
  58.     struct WL {
  59.         WL(GEMwindow *Wind, WL *n);
  60.         GEMwindow *Window;
  61.         struct WL *Next;
  62.         struct WL *Prev;
  63.     } *W;
  64.     GEMwindow* Window(int ID) const;
  65.     WL* ListWindow(int ID) const;
  66.  
  67.     GEMmenu *Menu;
  68.     GEMdeskaccessory *Acc;
  69.     GEMtimer *Timer;
  70.     GEMkeysink *KeySink;
  71. };
  72.  
  73. #endif
  74.